// 定义命名空间
using System;

namespace Wiz.Minio.EventData;

/// <summary>
/// 定义下载任务的状态枚举
/// </summary>
public enum DownloadTaskStatus { 
    /// <summary>
    /// 任务待处理
    /// </summary>
    Pending, 
    /// <summary>
    /// 任务正在运行
    /// </summary>
    Running, 
    /// <summary>
    /// 任务成功完成
    /// </summary>
    Success, 
    /// <summary>
    /// 任务失败
    /// </summary>
    Failed 
}

/// <summary>
/// 表示Minio下载任务的类
/// </summary>
public class MinioDownloadTask
{
    /// <summary>
    /// 获取或设置下载任务的状态
    /// </summary>
    public DownloadTaskStatus Status { get; set; }

    /// <summary>
    /// 任务进度
    /// </summary>
    public int Progress {get;set;}

    /// <summary>
    /// 获取或设置下载文件的路径
    /// </summary>
    public string FilePath { get; set; }

    /// <summary>
    /// 获取或设置下载任务的开始时间
    /// </summary>
    public DateTime StartTime { get; set; }

    /// <summary>
    /// 获取或设置下载任务的结束时间，可为空
    /// </summary>
    public DateTime? EndTime { get; set; }

    /// <summary>
    /// 获取或设置查询数据传输对象
    /// </summary>
    public string QueryDto { get; set; }

    /// <summary>
    /// 获取或设置下载任务失败时的错误信息
    /// </summary>
    public string ErrorMessage { get; set; }

    /// <summary>
    /// 获取或设置下载任务的过期时间
    /// </summary>
    public DateTime ExpireTime { get; set; }
}